package cn.com.mtons.designpattern.singleton.lazybones;

/**
 * 懒汉模式
 * -- 在第一次使用的时候才进行初始化（懒加载）
 * -- 由于获取实例的静态方法用synchronized修饰，所以也没有线程安全的问题
 * -- 写法每次获取实例都要进行同步（加锁），因此效率较低
 *
 * 总结：线程安全、懒加载、效率低。
 */
public class Singleton {

    private static Singleton instance;
    private Singleton(){}

    public static synchronized Singleton getInstance(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance;
    }
}
